package ru.develbureau.server.model;

import java.util.HashMap;
import java.util.Map;

public class ModelValidator {

	public static Map<String, String> validateClientRequest( ClientRequestEntity clientRequest){
		Map<String,String> errors = new HashMap<String, String>();
		
		if(clientRequest.getName() == null || clientRequest.getName().trim().length()<2){
			errors.put("name", "Введите имя. Напоминаем, имя состоит из букв");
		}
		
		
		if(clientRequest.getPhone() !=null ){
			String purePhone = extractPhone(clientRequest.getPhone());
			if( purePhone.isEmpty() || (purePhone.length()!= 7 && purePhone.length()!=10 && purePhone.length()!=11) ) {
				errors.put("phone", "Это не московский телефонный номер");
			}
		}else{
			errors.put("phone", "Введите номер мобильного телефона");
		}
		
		
		if(clientRequest.getSource()==null || clientRequest.getSource().trim().length()<5){
			errors.put("source", "Укажите место отправления");
		}
		
		if(clientRequest.getTarget()==null || clientRequest.getTarget().trim().length()<5){
			errors.put("target", "Укажите место назначения");
		}
	
		if(clientRequest.getTime() == null || clientRequest.getTime().length()<4){
			errors.put("time", "Так во сколько за вами приехать?");
		}
		return errors;
		
	}
	
	private static String extractPhone(String phone){
		String onlyDigits = "";
		for(int i=0; i< phone.length(); i++){
			if(Character.isDigit(phone.charAt(i))){
				onlyDigits+=phone.charAt(i);
			}
		}
		return onlyDigits;
	}
}
